package com.le.tester.leetcode;

import io.swagger.models.auth.In;

import java.util.*;

/**
 * 描述：合并两个有序数组
 */
public class MergeArr {
    /**
     * @param nums1 数组1
     * @param m     数组1的大小
     * @param nums2 数组2
     * @param n     数组2的大小
     */
    public void merge(int[] nums1, int m, int[] nums2, int n) {


        int[] resultCopy = new int[m + n];
        int[] nums1Copy = Arrays.copyOf(nums1, m);
        System.arraycopy(nums1Copy, 0, resultCopy, 0, nums1Copy.length);
        System.arraycopy(nums2, 0, resultCopy, nums1Copy.length, nums2.length);
        System.arraycopy(resultCopy, 0, nums1, 0, nums1.length);
        Arrays.sort(nums1);

//        int numLength1 = nums1.length;
//        int numLength2 = nums2.length;
//        int mnLength = numLength1 + numLength2;
//        int[] nums4;
//
//        if (nums1[0] >= 0) {
//            int[] nums3 = Arrays.copyOf(nums1, mnLength);
//            System.arraycopy(nums2, 0, nums3, numLength1, numLength2);
//            Arrays.sort(nums3);
//            nums4 = Arrays.stream(nums3).filter(o -> o != 0).sorted().toArray();
//            System.arraycopy(nums4, 0, nums1, 0, nums4.length);
//        } else {
//            int[] nums5 = new int[m + n];
//            //此时是num1的复制，把值放进都放num5
//            nums4 = Arrays.copyOf(nums1, m);
//            System.arraycopy(nums4, 0, nums5, 0, nums4.length);
//            System.arraycopy(nums2, 0, nums5, nums4.length, nums2.length);
//            Arrays.sort(nums5);
//            System.arraycopy(nums5, 0, nums1, 0, nums1.length);
//        }
//        Arrays.sort(nums1);
//        System.out.println(Arrays.toString(nums1));
    }

    public static void main(String[] args) {
        new MergeArr().merge(new int[]{0, 1, 1, 2, 2, 0, 0, 0}, 5, new int[]{0, 3, 3}, 3);
//        [0,1,1,2,2,0,0,0]
//        5
//                [0,3,3]
//        3
    }
}
